﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using RESTServicioTecnico.Dominio;
using System.Data.SqlClient;


namespace RESTServicioTecnico.Persistencia
{
    public class OrdenServicioDAO
    {
        public OrdenServicio Crear(OrdenServicio OrdenServicioACrear)
        {
            OrdenServicio OrdenServicioCreado = null;
            string sql = "INSERT INTO t_OrdenServicio (id_ost, fecha_registro, observacion, id_fae) VALUES  (@cod, @fecha, @obs, 3)";
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@cod", OrdenServicioACrear.Codigo));
                    com.Parameters.Add(new SqlParameter("@fecha", OrdenServicioACrear.Fecha));
                    com.Parameters.Add(new SqlParameter("@obs", OrdenServicioACrear.Obs));
                    com.ExecuteNonQuery();
                }
            }
            OrdenServicioCreado = Obtener(OrdenServicioACrear.Codigo);
            return OrdenServicioCreado;
        }


        public OrdenServicio Obtener(string codigo)
        {
            OrdenServicio OrdenServicioEncontrado = null;
            string sql = "SELECT a.id_ost, a.fecha_registro, a.observacion, b.placa FROM t_ordenservicio a inner join t_fae b on b.id_fae=a.id_fae WHERE a.id_ost=@cod";
            using (SqlConnection con = new SqlConnection(ConexionUtil.Cadena))
            {
                con.Open();
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    com.Parameters.Add(new SqlParameter("@cod", codigo));
                    using (SqlDataReader resultado = com.ExecuteReader())
                    {
                        if (resultado.Read())
                        {
                            OrdenServicioEncontrado = new OrdenServicio()
                            {
                                Codigo = (string)resultado["id_ost"],
                                Fecha = (string)resultado["fecha_registro"],
                                Obs = (string)resultado["observacion"],
                                Placa = (string)resultado["placa"]

                            };
                        }
                    }
                }
            }
            return OrdenServicioEncontrado;

        }

        public OrdenServicio Modificar(OrdenServicio OrdenServicioAModificar)
        {
            //TODO:
            return null;
        }

        public void Eliminar(OrdenServicio OrdenServicioAEliminar)
        {
            //TODO:

        }

        // public List<Alumno> ListarTodos()

        // {
        //TODO: 

        //}
    }
}